Typically, cloud computing has been utilized as a central storage repository for Internet of things (IoT) devices since with cloud computing, data stored centrally can be accessed for computation or actuation. However, the data of high volume, velocity, variety, variability that is produced in IoT applications, additional architectural modifications to storage and processing architectures may be desirable.
In order to extend the cloud to be closer to the things that produce and act on IoT data, Fog computing can be used. Fog computing is particularly suited for IoT applications where sensors are typically mobile and produce data at large volumes and/or velocity. Moving the control and actuation servers to nodes nearer to the edge devices also reduces traffic on the cloud data centre, while still maintaining low latency overheads. Typically any device with computing, storage, and network connectivity can be a Fog node. For instance, devices such as industrial controllers, switches, routers, embedded servers, video surveillance cameras, and so on, may be example of Fog nodes. As the number of IoT devices scales to trillions of devices, various performance bottlenecks in last mile connectivity and central cloud access may occur.